//查看用户详情
export var myToUserDetail = function(id) {
	// console.log(id)
	uni.navigateTo({
		url: '/pages/My/myDetails/myDetails?user_id=' + id
	})
}

//判断登录
export var myToLogin = function(back) {
	if (uni.getStorageSync('user_id') == '') {
		uni.navigateTo({
			url: '/pages/Other/login/login'
		})
	} else {
		if (back != undefined) {
			back();
		}
	}
}

//微信登录有用
export var myAppid = 'wx9d6747bd19af71ad'; //金
export var mySecret = '2cc707e56389edf7384d92752af783c4'; //金

//get请求
export var myAjaxNew = function(params) {
	var model = params.model
	var controName = params.controllerName
	var actionName = params.actionName
	var data = params.data
	var notLoading = params.notLoading || false
	// console.log(data)
	
	!notLoading && uni.showLoading();
	uni.request({
		// url:'http://192.168.6.158:8768/eg-api/'+model+'/'+controName+'/'+actionName,//张家成,
		url: 'https://www.curiousmore.com/qmore/' + model + '/' + controName + '/' + actionName, //外网,
		// url:'http://101.37.66.151:8768/eg-api/'+model+'/'+controName+'/'+actionName,//周伟祥,
		method: 'GET',
		data: data,
		success(res) {
			uni.hideLoading()
			params.successBack(res);
		},
		fail(res) {
			uni.hideLoading()
			uni.showToast({
				title: '请求数据失败',
				icon: "none"
			});

			if (params.hasOwnProperty('failBack')) {
				params.failBack();
			}
			params.failBack(res);
		},
		complete() {
			if (params.hasOwnProperty('completeBack')) {
				params.completeBack();
			}
		},
	})
}
//post请求
export var myAjaxNewPost = function(params) {
	var model = params.model
	var controName = params.controllerName
	var actionName = params.actionName
	var data = params.data
	// console.log(data)
	uni.showLoading()

	uni.request({
		// url:'http://192.168.6.158:8768/eg-api/'+model+'/'+controName+'/'+actionName,//张家成,
		url: 'https://www.curiousmore.com/qmore/' + model + '/' + controName + '/' + actionName, //外网,
		// url:'http://101.37.66.151:8768/eg-api/'+model+'/'+controName+'/'+actionName,//周伟祥,
		method: 'POST',
		data: data,
		success(res) {
			uni.hideLoading()
			params.successBack(res);
		},
		fail() {
			uni.hideLoading()
			uni.showToast({
				title: '请求数据失败',
				icon: "none"
			});

			if (params.hasOwnProperty('failBack')) {
				params.failBack();
			}
		},
		complete() {
			if (params.hasOwnProperty('completeBack')) {
				params.completeBack();
			}
		},
	})
}
//时间显示处理
export var myDate = {
	getDateDiff(dateStr) {
		var publishTime = this.getDateTimeStamp(dateStr) / 1000,
			d_seconds,
			d_minutes,
			d_hours,
			d_days,
			timeNow = parseInt(new Date().getTime() / 1000),
			d,

			date = new Date(publishTime * 1000),
			Y = date.getFullYear(),
			M = date.getMonth() + 1,
			D = date.getDate(),
			H = date.getHours(),
			m = date.getMinutes(),
			s = date.getSeconds();
		//小于10的在前面补0
		if (M < 10) {
			M = '0' + M;
		}
		if (D < 10) {
			D = '0' + D;
		}
		if (H < 10) {
			H = '0' + H;
		}
		if (m < 10) {
			m = '0' + m;
		}
		if (s < 10) {
			s = '0' + s;
		}

		d = timeNow - publishTime;
		d_days = parseInt(d / 86400);
		d_hours = parseInt(d / 3600);
		d_minutes = parseInt(d / 60);
		d_seconds = parseInt(d);

		if (d_days > 0 && d_days < 3) {
			return d_days + '天前';
		} else if (d_days <= 0 && d_hours > 0) {
			return d_hours + '小时前';
		} else if (d_hours <= 0 && d_minutes > 0) {
			return d_minutes + '分钟前';
		} else if (d_seconds < 60) {
			if (d_seconds <= 0) {
				return '刚刚';
			} else {
				return d_seconds + '秒前';
			}
		} else if (d_days >= 3 && d_days < 30) {
			return M + '-' + D;
		} else if (d_days >= 30) {
			return M + '-' + D;
		}
	},
	getDateTimeStamp(dateStr) {
		if (dateStr != null) {
			return Date.parse(dateStr.replace(/-/gi, "/"));
		}

	}
}
//时间格式化（年月日时分秒）
export var timeProcessing = {
	formatDate(value) {
		var data = new Date(value)
		var y = data.getFullYear();
		var m = data.getMonth() + 1;
		var d = data.getDate();
		var h = data.getHours();
		var i = data.getMinutes();
		var s = data.getSeconds();
		if (m < 10) {
			m = '0' + m
		}
		if (d < 10) {
			d = '0' + d
		}
		if (h < 10) {
			h = '0' + h
		}
		if (i < 10) {
			i = '0' + i
		}
		if (s < 10) {
			s = '0' + s
		}
		var format = y + '-' + m + '-' + d + ' ' + h + ':' + i + ':' + s
		return format;
	},
}

//日期处理（yy-mm）
export var timeFromDate = function(timeStamp) {
	var data = new Date(timeStamp)
	var y = data.getFullYear();
	var m = data.getMonth() + 1;
	if (m < 10) {
		m = '0' + m
	}
	var format = y + '-' + m
	return format;
};


//年龄处理
export var ageChange = function(age) {
	var currYear = new Date().getFullYear();
	var birthYear = currYear - age;
	if (birthYear >= 1960 && birthYear < 1970) {
		return '60后';
	} else if (birthYear >= 1970 && birthYear < 1980) {
		return '70后';
	} else if (birthYear >= 1980 && birthYear < 1990) {
		return '80后';
	} else if (birthYear >= 1990 && birthYear < 2000) {
		return '90后';
	} else if (birthYear >= 2000 && birthYear < 2010) {
		return '00后';
	} else {
		return '';
	}
}

//md5加密
export var MD5 = function (string) {
  
    function RotateLeft(lValue, iShiftBits) {
        return (lValue<<iShiftBits) | (lValue>>>(32-iShiftBits));
    }
  
    function AddUnsigned(lX,lY) {
        var lX4,lY4,lX8,lY8,lResult;
        lX8 = (lX & 0x80000000);
        lY8 = (lY & 0x80000000);
        lX4 = (lX & 0x40000000);
        lY4 = (lY & 0x40000000);
        lResult = (lX & 0x3FFFFFFF)+(lY & 0x3FFFFFFF);
        if (lX4 & lY4) {
            return (lResult ^ 0x80000000 ^ lX8 ^ lY8);
        }
        if (lX4 | lY4) {
            if (lResult & 0x40000000) {
                return (lResult ^ 0xC0000000 ^ lX8 ^ lY8);
            } else {
                return (lResult ^ 0x40000000 ^ lX8 ^ lY8);
            }
        } else {
            return (lResult ^ lX8 ^ lY8);
        }
    }
  
    function F(x,y,z) { return (x & y) | ((~x) & z); }
    function G(x,y,z) { return (x & z) | (y & (~z)); }
    function H(x,y,z) { return (x ^ y ^ z); }
    function I(x,y,z) { return (y ^ (x | (~z))); }
  
    function FF(a,b,c,d,x,s,ac) {
        a = AddUnsigned(a, AddUnsigned(AddUnsigned(F(b, c, d), x), ac));
        return AddUnsigned(RotateLeft(a, s), b);
    };
  
    function GG(a,b,c,d,x,s,ac) {
        a = AddUnsigned(a, AddUnsigned(AddUnsigned(G(b, c, d), x), ac));
        return AddUnsigned(RotateLeft(a, s), b);
    };
  
    function HH(a,b,c,d,x,s,ac) {
        a = AddUnsigned(a, AddUnsigned(AddUnsigned(H(b, c, d), x), ac));
        return AddUnsigned(RotateLeft(a, s), b);
    };
  
    function II(a,b,c,d,x,s,ac) {
        a = AddUnsigned(a, AddUnsigned(AddUnsigned(I(b, c, d), x), ac));
        return AddUnsigned(RotateLeft(a, s), b);
    };
  
    function ConvertToWordArray(string) {
        var lWordCount;
        var lMessageLength = string.length;
        var lNumberOfWords_temp1=lMessageLength + 8;
        var lNumberOfWords_temp2=(lNumberOfWords_temp1-(lNumberOfWords_temp1 % 64))/64;
        var lNumberOfWords = (lNumberOfWords_temp2+1)*16;
        var lWordArray=Array(lNumberOfWords-1);
        var lBytePosition = 0;
        var lByteCount = 0;
        while ( lByteCount < lMessageLength ) {
            lWordCount = (lByteCount-(lByteCount % 4))/4;
            lBytePosition = (lByteCount % 4)*8;
            lWordArray[lWordCount] = (lWordArray[lWordCount] | (string.charCodeAt(lByteCount)<<lBytePosition));
            lByteCount++;
        }
        lWordCount = (lByteCount-(lByteCount % 4))/4;
        lBytePosition = (lByteCount % 4)*8;
        lWordArray[lWordCount] = lWordArray[lWordCount] | (0x80<<lBytePosition);
        lWordArray[lNumberOfWords-2] = lMessageLength<<3;
        lWordArray[lNumberOfWords-1] = lMessageLength>>>29;
        return lWordArray;
    };
  
    function WordToHex(lValue) {
        var WordToHexValue="",WordToHexValue_temp="",lByte,lCount;
        for (lCount = 0;lCount<=3;lCount++) {
            lByte = (lValue>>>(lCount*8)) & 255;
            WordToHexValue_temp = "0" + lByte.toString(16);
            WordToHexValue = WordToHexValue + WordToHexValue_temp.substr(WordToHexValue_temp.length-2,2);
        }
        return WordToHexValue;
    };
  
    function Utf8Encode(string) {
        string = string.replace(/\r\n/g,"\n");
        var utftext = "";
  
        for (var n = 0; n < string.length; n++) {
  
            var c = string.charCodeAt(n);
  
            if (c < 128) {
                utftext += String.fromCharCode(c);
            }
            else if((c > 127) && (c < 2048)) {
                utftext += String.fromCharCode((c >> 6) | 192);
                utftext += String.fromCharCode((c & 63) | 128);
            }
            else {
                utftext += String.fromCharCode((c >> 12) | 224);
                utftext += String.fromCharCode(((c >> 6) & 63) | 128);
                utftext += String.fromCharCode((c & 63) | 128);
            }
  
        }
  
        return utftext;
    };
  
    var x=Array();
    var k,AA,BB,CC,DD,a,b,c,d;
    var S11=7, S12=12, S13=17, S14=22;
    var S21=5, S22=9 , S23=14, S24=20;
    var S31=4, S32=11, S33=16, S34=23;
    var S41=6, S42=10, S43=15, S44=21;
  
    string = Utf8Encode(string);
  
    x = ConvertToWordArray(string);
  
    a = 0x67452301; b = 0xEFCDAB89; c = 0x98BADCFE; d = 0x10325476;
  
    for (k=0;k<x.length;k+=16) {
        AA=a; BB=b; CC=c; DD=d;
        a=FF(a,b,c,d,x[k+0], S11,0xD76AA478);
        d=FF(d,a,b,c,x[k+1], S12,0xE8C7B756);
        c=FF(c,d,a,b,x[k+2], S13,0x242070DB);
        b=FF(b,c,d,a,x[k+3], S14,0xC1BDCEEE);
        a=FF(a,b,c,d,x[k+4], S11,0xF57C0FAF);
        d=FF(d,a,b,c,x[k+5], S12,0x4787C62A);
        c=FF(c,d,a,b,x[k+6], S13,0xA8304613);
        b=FF(b,c,d,a,x[k+7], S14,0xFD469501);
        a=FF(a,b,c,d,x[k+8], S11,0x698098D8);
        d=FF(d,a,b,c,x[k+9], S12,0x8B44F7AF);
        c=FF(c,d,a,b,x[k+10],S13,0xFFFF5BB1);
        b=FF(b,c,d,a,x[k+11],S14,0x895CD7BE);
        a=FF(a,b,c,d,x[k+12],S11,0x6B901122);
        d=FF(d,a,b,c,x[k+13],S12,0xFD987193);
        c=FF(c,d,a,b,x[k+14],S13,0xA679438E);
        b=FF(b,c,d,a,x[k+15],S14,0x49B40821);
        a=GG(a,b,c,d,x[k+1], S21,0xF61E2562);
        d=GG(d,a,b,c,x[k+6], S22,0xC040B340);
        c=GG(c,d,a,b,x[k+11],S23,0x265E5A51);
        b=GG(b,c,d,a,x[k+0], S24,0xE9B6C7AA);
        a=GG(a,b,c,d,x[k+5], S21,0xD62F105D);
        d=GG(d,a,b,c,x[k+10],S22,0x2441453);
        c=GG(c,d,a,b,x[k+15],S23,0xD8A1E681);
        b=GG(b,c,d,a,x[k+4], S24,0xE7D3FBC8);
        a=GG(a,b,c,d,x[k+9], S21,0x21E1CDE6);
        d=GG(d,a,b,c,x[k+14],S22,0xC33707D6);
        c=GG(c,d,a,b,x[k+3], S23,0xF4D50D87);
        b=GG(b,c,d,a,x[k+8], S24,0x455A14ED);
        a=GG(a,b,c,d,x[k+13],S21,0xA9E3E905);
        d=GG(d,a,b,c,x[k+2], S22,0xFCEFA3F8);
        c=GG(c,d,a,b,x[k+7], S23,0x676F02D9);
        b=GG(b,c,d,a,x[k+12],S24,0x8D2A4C8A);
        a=HH(a,b,c,d,x[k+5], S31,0xFFFA3942);
        d=HH(d,a,b,c,x[k+8], S32,0x8771F681);
        c=HH(c,d,a,b,x[k+11],S33,0x6D9D6122);
        b=HH(b,c,d,a,x[k+14],S34,0xFDE5380C);
        a=HH(a,b,c,d,x[k+1], S31,0xA4BEEA44);
        d=HH(d,a,b,c,x[k+4], S32,0x4BDECFA9);
        c=HH(c,d,a,b,x[k+7], S33,0xF6BB4B60);
        b=HH(b,c,d,a,x[k+10],S34,0xBEBFBC70);
        a=HH(a,b,c,d,x[k+13],S31,0x289B7EC6);
        d=HH(d,a,b,c,x[k+0], S32,0xEAA127FA);
        c=HH(c,d,a,b,x[k+3], S33,0xD4EF3085);
        b=HH(b,c,d,a,x[k+6], S34,0x4881D05);
        a=HH(a,b,c,d,x[k+9], S31,0xD9D4D039);
        d=HH(d,a,b,c,x[k+12],S32,0xE6DB99E5);
        c=HH(c,d,a,b,x[k+15],S33,0x1FA27CF8);
        b=HH(b,c,d,a,x[k+2], S34,0xC4AC5665);
        a=II(a,b,c,d,x[k+0], S41,0xF4292244);
        d=II(d,a,b,c,x[k+7], S42,0x432AFF97);
        c=II(c,d,a,b,x[k+14],S43,0xAB9423A7);
        b=II(b,c,d,a,x[k+5], S44,0xFC93A039);
        a=II(a,b,c,d,x[k+12],S41,0x655B59C3);
        d=II(d,a,b,c,x[k+3], S42,0x8F0CCC92);
        c=II(c,d,a,b,x[k+10],S43,0xFFEFF47D);
        b=II(b,c,d,a,x[k+1], S44,0x85845DD1);
        a=II(a,b,c,d,x[k+8], S41,0x6FA87E4F);
        d=II(d,a,b,c,x[k+15],S42,0xFE2CE6E0);
        c=II(c,d,a,b,x[k+6], S43,0xA3014314);
        b=II(b,c,d,a,x[k+13],S44,0x4E0811A1);
        a=II(a,b,c,d,x[k+4], S41,0xF7537E82);
        d=II(d,a,b,c,x[k+11],S42,0xBD3AF235);
        c=II(c,d,a,b,x[k+2], S43,0x2AD7D2BB);
        b=II(b,c,d,a,x[k+9], S44,0xEB86D391);
        a=AddUnsigned(a,AA);
        b=AddUnsigned(b,BB);
        c=AddUnsigned(c,CC);
        d=AddUnsigned(d,DD);
    }
  
    var temp = WordToHex(a)+WordToHex(b)+WordToHex(c)+WordToHex(d);
  
    return temp.toLowerCase();
};
export const myRequest = (options) => {
	return new Promise((resolve,reject) => {
		uni.request({
			// url: "http://101.37.66.151:8768/eg-api/user" + options.url,
			url: "https://curiousmore.com/qmore/user" + options.url,
			// url: "https://www.curiousmore.com/qmore/user" + options.url,
			method: options.methed || "GET",
			data: options.data || {},
			success: (res) => {
				resolve(res.data)
			},
			fail: (err) => {
				uni.showToast({
					title: "请求失败"
				})
				reject(err)
			}
		})
	})
}


var crypto = require('crypto')

export const RdWXBizDataCrypt = function(appId, sessionKey) {
  this.appId = appId
  this.sessionKey = sessionKey
}

RdWXBizDataCrypt.prototype.decryptData = function (encryptedData, iv) {
  // base64 decode
  var sessionKey = new Buffer(this.sessionKey, 'base64')
  encryptedData = new Buffer(encryptedData, 'base64')
  iv = new Buffer(iv, 'base64')

  try {
     // 解密
    var decipher = crypto.createDecipheriv('aes-128-cbc', sessionKey, iv)
    // 设置自动 padding 为 true，删除填充补位
    decipher.setAutoPadding(true)
    var decoded = decipher.update(encryptedData, 'binary', 'utf8')
    decoded += decipher.final('utf8')
    
    decoded = JSON.parse(decoded)

  } catch (err) {
    throw new Error('Illegal Buffer')
  }

  if (decoded.watermark.appid !== this.appId) {
    throw new Error('Illegal Buffer')
  }
  return decoded
}


export const userInfoRefresh = function (opt) {
	return new Promise((resolve,reject) => {
		uni.request({
			url: "https://curiousmore.com/qmore/user/userInfo/findById",
			method: "get",
			data: {
				id: opt
			},
			success: (res) => {
				resolve(res.data)
				try{
					uni.setStorageSync('userif_list',res.data.data)
				}catch(e) {}
			}
		})
	})
}

 









